package socket;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

import controllers.UnoController;

public class ServidorNotificacao implements Runnable {

	
	public static Map<String, Socket> sokets = new HashMap<String, Socket>();
	

	public void run() {

		try {
			ServerSocket serverSocket = new ServerSocket(6654);
			System.out.println("Servidor de notificacao iniciado. Aguardando por conexoes. ");
			while(true){
				Socket clientSocket = serverSocket.accept();

				System.out.println("Iniciada conexao com o IP " + clientSocket.getInetAddress().getHostAddress());

				System.out.println("Aguardando registro do jogador.");
				Scanner reader = null;
				try {

					System.out.println("!.");
					reader = new Scanner(clientSocket.getInputStream(), "US-ASCII");
					String id = reader.nextLine();
					sokets.put(id, clientSocket);
	
					System.out.println("Identificação recebida. Tentativa de registro do jogador "+ id +".");
					UnoController.sistema.registarNotificador(id, clientSocket);
					
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			System.out.println("Servidor já iniciado e porta já em uso.");
		}

	}

}
